package collection;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class SortString {
    public static void main(String[] args) {
        List<String> list=new ArrayList<>();
        list.add("王克晶");
        list.add("传奇hlushcosdasdf");
        list.add("国斌老师");
        System.out.println("list原始数据："+list);//list原始数据：[王克晶, 传奇hlushcosdasdf, 国斌老师]

        Collections.sort(list);
        System.out.println(list);//[传奇hlushcosdasdf, 国斌老师, 王克晶]
        System.out.println((int)'王');//29579
        System.out.println((int)'传');//20256
        System.out.println((int)'国');//22269

        //自定义排序规则:
        /*
            compare()方法用于定义o1与o2比较大小的规则，并
            返回值实现要求:------------不用纠结，记住下面的结论即可
            //return o2.length()-o1.length();//降序
              1）如果返回值>0则表达的是o1>o2
              2）如果返回值<0则表达的是o1<o2
              3）如果返回值=0则表达的是o1=o2
             结论:
              1）前面的-后面的-------------升序
              2）后面的-前面的-------------降序
           */
        Collections.sort(list, (String o1, String o2) ->o1.length()-o2.length());
        System.out.println("list排序数据："+list);//list排序数据：[王克晶, 国斌老师, 传奇hlushcosdasdf]






























        /*
        List<String> list=new ArrayList<>();
        list.add("jack");
        list.add("rose");
        list.add("tom");
        list.add("jerry");
        list.add("black");
        list.add("Kobe");
        System.out.println("list原始数据："+list);//[jack, rose, tom, jerry, black, Kobe]

        //对英文字符串排序时，会按首字母的ASCII码来排
        //若首字母相同，则比较第2个字母的ASCII码，以此类推
        Collections.sort(list);
        System.out.println("list排序后数据："+list);//[Kobe, black, jack, jerry, rose, tom]
         */
    }
}
